<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 段式回文 -->
    <script>
      var longestDecomposition = function (text) {
        let left = 0
        let right = text.length - 1 // 双指针
        let cnt = 1 // 初始化
        let pre = '' // 当前遍历到的前缀部分
        let back = '' // 当前遍历到的后缀部分
        while (left < right) {
          pre = pre + text[left] // 追加到前缀中
          back = text[right] + back // 追加到后缀中，注意顺序
          // 每一次移动双指针，都对当前前缀、后缀进行一次对比
          if (pre === back) {
            // 这里要做判断，可以看看 “nufbkflwjjlwjjnufbkf” 这个例子
            cnt = right - left <= 1 ? cnt + 1 : cnt + 2
            // 清空当前 前缀后缀
            pre = ''
            back = ''
          }
          left++
          right--
        }
        return cnt
      }
      console.log(longestDecomposition('ghiabcdefhelloadamhelloabcdefghi'))
    </script>
  </body>
</html>
